The invention relates to computers and processor systems. More particularly, the invention relates to performance optimization of a computer system by tuning the system hardware setting based on the usage of the computer system.
Most modem computers, e.g., a personal computer (PC), are constructed with general functionality so that they may run many different applications. Most of the modem computers also allow a variation in configuration settings in order to optimize the performance of the computer for the particular applications for which the computer is intended to be used. However, a particular configuration setting of the computer may not be the optimal setting for every possible application in which the computer system may be used. For example, the same computer optimized for use as a desk-top application workstation, e.g., by allocating a large application area in the memory, may not necessarily be optimally xe2x80x9ctunedxe2x80x9d to be used as, e.g., a network file server, which requires a larger buffer area to increase the throughput of file transfers. Accordingly, any attempts to optimize the performance of a modem computer must take into account the particular intended use of the computer.
To this end, some conventional modem operating systems (OS), e.g., the WINDOWS NT(copyright), distributed by the Microsoft Corporation in Redmont, Washington, allow a user to make a performance tuning selection based on the desired use of the computer. In particular, for example, FIG. 5 shows a menu screen 500 of the WINDOWS NT(copyright), from which such user selection can be made. The menu 500 allows a user to select one of four available use feature options, namely, the xe2x80x9cMinimize Memory Usedxe2x80x9d option 501, the xe2x80x9cBalancexe2x80x9d option 502, the xe2x80x9cMaximize Throughput for File Sharingxe2x80x9d option 503 and the xe2x80x9cMaximize Throughput for Network Applicationsxe2x80x9d option 504.
Each of the four options particularly optimizes the behavior of the operating system for a specific use. For instance, when the xe2x80x9cMinimize memory Usedxe2x80x9d option 501 is chosen, the operating system uses a minimal amount memory for handling network-based requests, thus optimizing the computer for running many foreground applications while servicing a limited number of network requests. A computer so configured may be best suited, for example, primarily as an application work station.
The other choices, the xe2x80x9cBalancexe2x80x9d option 502, the xe2x80x9cMaximize Throughput for File Sharingxe2x80x9d option 503 and the xe2x80x9cMaximize Throughput for Network Applicationsxe2x80x9d option 504 may optimize the computer to serve the role of, e.g., a Domain Controller, a file server, and a database server, respectively.
Additionally, the menu 500 allows a user to cancel an erroneously made selection by pressing the xe2x80x9ccancelxe2x80x9d button 507, or seek help in making the selection by pressing on the xe2x80x9chelpxe2x80x9d button 508. Once the final selection is made, i.e., when the xe2x80x9cOKxe2x80x9d button 506 is pressed, the operating system stores the user selection as an optimization parameter for future reference by the operating system.
Unfortunately, however, in a conventional computer system, the optimization parameters are stored in a location known only to the operating system, and are thus not available for use by the rest of the computer system, e.g., the Basic Input Output System (BIOS) and the other system software and/or hardware components (collectively referred to herein as the firmware components). Therefore, in a conventional computer system, the changes made in response to the indicated user preference is disadvantageously limited to the optimization of the decision making process of the operating system, e.g., in determining how it uses the available resources such as the memory and the like. Accordingly, conventional operating system based optimization is only partially effective, since it fails to optimize the entire system.
Moreover, in a conventional computer system, because the conventional optimization process is integrally incorporated in the kernels of the operating system, any improvement in the optimization algorithm itself, e.g., an improved configuration setting corresponding to a particular intended use, cannot be implemented without the release of a new version of the operating system. Thus, a user is required to wait for the new release of the operating system before receiving the benefit of any improvement in optimization.
Furthermore, because the operating system must be re-initialized before it can use the newly stored user selection information, the entire computer system must be re-booted before any optimization can take effect. Thus, the optimization process is disadvantageously static.
There is thus a need for an apparatus and method for computer system performance optimization that allows optimization of the entire system, including the hardware settings as well as the software settings according to the user indication of a preferred use of the computer system. There is also a need for an apparatus and method for computer system performance optimization that may be updated without the need for a new release of the entire operating system. There is a further need for an apparatus and method for a dynamic computer system performance optimization.
Among the objectives of the present invention is to allow a user of a computer system to optimally configure the system hardware and/or software settings for the preferred intended use of the computer system.
Another objective of the present invention is to allow a dynamic optimization of a computer system based on the intended use.
Yet another objective of the present invention is to allow an update of an optimization scheme without a modification or an update of the operating system. Other objectives are met by the invention described in the claims herein.
In accordance with the principles of the present invention, a method of optimizing the performance of a computer system, comprises detecting a modification of the use preference of the computer system, and updating a configuration setting of either a system BIOS or a firmware component of the computer system based on the detected modification of the use preference.
In addition, in accordance with the principles of the present invention, an apparatus for optimizing performance of a computer system comprises a modification detector which detects a modification of a use preference of the computer system, and a hardware optimizer that updates a configuration setting of either a system BIOS or a firmware component of the computer system based on the detected modification of the use preference.
Furthermore, in accordance with the principles of the present invention, a hardware abstraction layer (HAL) of an operating system of a computer system comprises a modification detector that detects a modification of a use preference of the computer system, and a hardware optimizer that updates a configuration setting of either a system BIOS or a firmware component of the computer system based on the detected modification of the use preference.